package com.timebank.volunteer.pojo.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.timebank.common.core.web.pojo.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import java.time.LocalDateTime;

/**
 * @author shiliuyinzhen
 */
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
public class Volunteer extends BaseEntity {

    /** 志愿服务Id */
    private Long id;

    /** 发布人id */
    private Long publisherId;

    /** 封面 */
    private String cover;

    /** 志愿服务名称 */
    private String title;

    /** 志愿服务概述 */
    private String description;

    /** 志愿服务具体内容 */
    private String content;

    /** 志愿服务人数 */
    private Integer volunteerNum;

    /** 当前志愿者报名人数 */
    private Integer currentVolunteerNum;

    /** 报名截止时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", shape = JsonFormat.Shape.STRING)
    private LocalDateTime deadline;

    /** 志愿服务开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", shape = JsonFormat.Shape.STRING)
    private LocalDateTime beginTime;

    /** 志愿服务结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", shape = JsonFormat.Shape.STRING)
    private LocalDateTime endTime;

    /** 类型 (1:  2:  ) */
    private Integer typeId;

    /** 类型名 */
    private String typeName;

    /** QQ */
    private String qq;

    /** 微信 */
    private String wx;

    /** email */
    private String email;

    /** 电话号码 */
    private String phone;

    /** 省份编码 */
    private String procode;

    /** 城市编码 */
    private String citycode;

    /** 区/县编码 */
    private String adcode;

    /** 经纬度 */
    private String location;

    /** 具体地址 */
    private String address;

    /** 时间币数量 */
    private Integer timeCoin;

    /** 审核是否通过(0: 未通过审核 1：审核通过 2：审核中)*/
    private Integer status;

    /** 删除标志(0：存在 1：删除) */
    private Integer delFlag;

    /** 签到状态 */
    private Integer signStatus;

    /** 当前签到次数 */
    private Integer signNum;

    /** 签到开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", shape = JsonFormat.Shape.STRING)
    private LocalDateTime signBeginTime;

    /** 签到结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", shape = JsonFormat.Shape.STRING)
    private LocalDateTime signEndTime;

    /** 距离 */
    private Long distance;
}
